function Game(el){
    this.el = document.querySelector(el)
    // 地图
    this.map = new Map(this.el)
    this.map.create()
    // 食物
    this.food = new Food(this.el)
    this.food.create()
    // 蛇
    this.snake = new Snake(this.el)
    this.snake.create()
}
Game.prototype.start = function() {
    t = setInterval(()=>{
        // 蛇动
        this.snake.move()
        // 判断吃食
        let snakeX = this.snake.snakeObj[0].x * 20
        let snakeY = this.snake.snakeObj[0].y * 20
        let foodX = this.food.foodX
        let foodY = this.food.foodY
        let maxX = this.el.offsetWidth - 30
        let maxY = this.el.offsetHeight - 30
        if(snakeX == foodX && snakeY == foodY) {
            let last = this.snake.snakeObj[this.snake.snakeObj.length-1]
            this.snake.snakeObj.push({
                x: last.x , y :last.y, color:last.color, el:null
            })
            this.snake.create()
            this.food.move()
        } else if(snakeX<0 || snakeY<0 || snakeX>maxX || snakeY>maxY) {
            alert('游戏结束')
            clearInterval(t)
        }
        
        // console.log(maxX,maxY);
        
    },100)
Game.prototype.stop = function() {
    alert('游戏结束')
    clearInterval(t)
}
    // 监控键盘上下左右 更改蛇的direction
    document.onkeyup = (evt) => {
        let e = evt || window.event  
        // console.log(e.keyCode);
        switch(e.keyCode){
            case 38:
                if(this.snake.direction == "bottom") {
                    alert('游戏结束')
                    clearInterval(t)
                }
                this.snake.direction = 'top'
                break;
            case 40:
                if(this.snake.direction == "top") {
                    alert('游戏结束')
                    clearInterval(t)
                }
                this.snake.direction = 'bottom'
                break;
            case 37:
                if(this.snake.direction == "right") {
                    alert('游戏结束')
                    clearInterval(t)
                }
                this.snake.direction = 'left'
                break;
            case 39:
                if(this.snake.direction == "left") {
                    alert('游戏结束')
                    clearInterval(t)
                }
                this.snake.direction = 'right'
                break;
            default:
                break;
        }
    }
}